freemarker常见语法大全 |
您所在的位置:网站首页 › freemarker 循环list › freemarker常见语法大全 |
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果存在,就输出这个值 ${book.name?default(‘xxx’)}//默认值xxx ${book.name!"xxx"}//默认值xxx ${book.date?string('yyyy-MM-dd')} //日期格式 ${book?string.number} 20 //三种不同的数字格式 ${book?string.currency}-- ${book?string.percent}— //声明变量,插入布尔值进行显示 ${foo?string("yes","no")} 大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期 使用lt、lte、gt和gte来替代= 也可以使用括号y)> 内置函数: 调用区别于属性的访问,使用?代替. 常见的一些内置函数 对于字符串 html-对字符串进行HTML编码 cap_first-使字符串第一个字母大写 lower_case-将字符串转换成小写 trim-去掉字符串前后的空白字符 示例:${“freeMarker”?cap_first}
对于Sequences(序列) size-获得序列中元素的数目 对于数字 int-取得数字的整数部分(如-1.9?int的结果是-1) 对于集合,可以使用数组的方式,使用下标索引进行访问 逻辑判断: if................ ... ... ...... ... Boolean类型的空值判断 空值判断可以写成 //注意${}为变量的渲染显示,而为定义等操作符的定义 switch............ ... ... ... ... ... 快速定义int区间的集合 //注意不需要[] 3:循环读取集合: 注意/的使用 ${stu} 与jstl循环类似,也可以访问循环的状态 item_index:当前变量的索引值 item_has_next:是否存在下一个对象 其中item名称为as后的变量名,如stu 集合长度判断 判断=的时候,注意只要一个=符号,而不是== 宏/模板 初步了解: 使用更像一个闭包closure,可以定义后,在脚本中任意地方引用,并原地起作用 Hello Joe! 使用的方式为: //同xml可以简写成 宏的参数定义,类似js,在宏名后 带参数进行传递定义 ${person} 调用带参数时,注意使用类似XML的属性格式进行传递,不需要关心顺序问题 参数默认值定义,如果没有,就必须要求传递完整的参数列表 Hello ${person}! 使用xml的嵌套内容进行传递宏调用,关键标签 调用时: The bordered text 标签可以在宏中多次调用,也可以将多个宏组合进行嵌套 for循环的精简版: 宏的循环变量,配合嵌套标签进行参数传递, //这里的三个参数,将会传递到嵌套内容中 ${c}. ${halfc} Last! //这里的内容由macro中的进行参数的传递,传递的数量任意,当注意需要宏接受这些 上述还需要注意;的使用 参数的数量是可变的,并不要求全部都有,但是效果不同 在模板中定义变量 在模板中定义的变量有三种类型: plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换。 局部变量:在宏定义体中有效,使用local指令创建和替换。 循环变量:只能存在于指令的嵌套内容,由指令(如list)自动创建;宏的参数是局部变量,而不是循环变量 //全局的plain变量 内部循环变量将会隐藏同名的外部循环变量 外部导入的使用,可以用于模块化,并且提供公用性 如:lib/my_lib.ftl文件 Copyright (C) ${date} Julia Smith. All rights reserved. Email: ${mail} lib/my_inc.ftl文件 ${my.mail} ${mail} 输出结果将不会出现冲突 对于库中的变量修改,使用in关键字 函数定义:区别于宏对象,带返回值 函数,有返回参数 stringA[M .. N] 取子字符串,类似substring(stringA, M, N) 导入其他页面元素 options包含两个属性 encoding=”GBK” 编码格式 parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入.注意在ftl文件里布尔值都是直接赋值的如parse=true,而不是 parse=”true” hash与list的定义 ${c.a} List片段可以采用: products[10..19] or products[5..] 的格式进行定义,当只局限于数字 ${v} 对变量的缺省处理 product.color!"red" 用compress directive或者transform来处理输出。 ...:消除空白行。 ...将输出压缩为一行。都需要包裹所需文档 freemarker可用"["代替" |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |